#include "display_manager.h"
#include <stdio.h>
#include <string.h>
#include"config.h"
static PT_DispOpr g_ptDispOprHead;
// head insert

// int RegisterDispOpr(PT_DispOpr ptDispOpr)
// {
//     if (ptDispOpr != NULL)
//     {
//         ptDispOpr->ptNext = g_ptDispOprHead;
//         g_ptDispOprHead = ptDispOpr;
//     }
//     else
//         return -1;
//     return 0;
// }

// tail insert
int RegisterDispOpr(PT_DispOpr ptDispOpr)
{
    PT_DispOpr tmp = g_ptDispOprHead;
    if (tmp == NULL)
    {
        if (ptDispOpr != NULL)
        {
            g_ptDispOprHead = ptDispOpr;
            g_ptDispOprHead->ptNext = NULL;
        }

        else
            return -1;
    }
    else
    {
        while (tmp->ptNext != NULL)
        {
            tmp = tmp->ptNext;
        }
        tmp->ptNext = ptDispOpr;
        ptDispOpr->ptNext = NULL;
    }
    return 0;
}
void ShowDispOpr()
{
    PT_DispOpr ptTmp = g_ptDispOprHead;
    int i = 0 ;
	while (ptTmp!=NULL)
	{
		printf("%02d %s\n", ++i, ptTmp->name);
		ptTmp = ptTmp->ptNext;
	}
}
PT_DispOpr GetDispOpr(char *pcName)
{
    PT_DispOpr ptTmp = g_ptDispOprHead;
    while(ptTmp)
    {
		if (strcmp(ptTmp->name, pcName) == 0)
        return ptTmp;
       ptTmp = ptTmp->ptNext;
    }
    return NULL;
}
int DisplayInit()
{
   int ret =  FBInit();
   if(ret)
   {
    DBG_PRINTF("chen DisplayInit Errot!\n");
   }
   return ret;
}